﻿using System;
// 在运行时不存在开发的泛型：开放泛型被汇编成程序的一部分而关闭。但运行时可能存在无绑定（unbound）泛型，只用作类对象。
// C#中唯一指定无绑定泛型的方法是使用typeof运算符：
namespace _068_typeof和无绑定泛型
{
    class A<T> { }
    class A<T1, T2> { }
    class Program
    {
        static void Main(string[] args)
        {
            Type a1 = typeof(A<>); // 无绑定类型（注意没有指定类参数）
            Type a2 = typeof(A<,>); // 用逗号表明有多个类参数

            // 开放泛型一般于反射API一起使用
            // 也可以用typeof运算符指定关闭的类：
            Type a3 = typeof(A<int, int>);
        }
        // 或在运行时关闭的开放类：
        class B<T> { void X() { Type t = typeof(T); } }
    }
}